/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.tramite.beans;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.NoResultException;
import javax.servlet.http.Cookie;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.general.be.PersonaNatural;
import org.cip.esymons.general.util.ControladorAbstracto;
import org.cip.esymons.general.util.Utiles;
import org.cip.esymons.tramite.bc.ColegiadoDelegate;
import org.cip.esymons.tramite.bc.PersonaNaturalDelegate;
import org.cip.esymons.tramite.bc.RecepAutoCertDelegate;
import org.cip.esymons.tramite.be.RecepAutoCert;

/**
 *
 * @author Cristian
 */
public class RecepAutoCertController {

    private PersonaNaturalDelegate personaDelegado;
    private ColegiadoDelegate colDelegado;
    private RecepAutoCertDelegate recepDelegado;
    private List<RecepAutoCert> recepcionadores;
    private PersonaNatural persona;
    private Colegiado colegiado;
    private RecepAutoCert recep;
    private RecepAutoCert recepSeleccionado;
    private boolean crear;
    private boolean hab;
    private boolean habBusc;

    public RecepAutoCertController() {
        colDelegado = new ColegiadoDelegate();
        personaDelegado = new PersonaNaturalDelegate();
        recepDelegado = new RecepAutoCertDelegate();
        persona = new PersonaNatural();
        colegiado = new Colegiado();
        recep = new RecepAutoCert();
        crear = true;
        hab = false;
        recepcionadores=new ArrayList<RecepAutoCert>();
    }

    public String getInicio() {
        habBusc = true;
        hab = false;
        Cookie[] cookies = ControladorAbstracto.getRequest().getCookies();
        String codUsuario = Utiles.getCookieValue(cookies, "Usuario", "nulo");
        if (!codUsuario.equals("nulo")) {
            colegiado = colDelegado.buscar(new Long(codUsuario));
            if (colegiado == null) {
                habBusc = false;
            }else{
                recepcionadores = recepDelegado.listarXColegiado(colegiado);

            }
        }
        return "";
    }

    public void setInicio(String s) {
    }

    public String editar(){
        recepDelegado.edit(recepSeleccionado);
        return "";
    }

    public String buscar() {
        try {
            hab = true;
            persona = personaDelegado.buscarXDni(persona.getPerNroDNI());
            crear = false;
        } catch (NoResultException e) {
            persona = new PersonaNatural();
            crear = true;
            ControladorAbstracto.error("La Persona  no existe");
        }
        return "";
    }

    public String grabar() {
        if (crear) {
            if (!persona.getPerNroDNI().isEmpty() && !persona.getPerNombres().isEmpty() && !persona.getPerapellidoMaterno().isEmpty() && !persona.getPerapellidoPaterno().isEmpty()) {
                personaDelegado.create(persona);
                recep.setFkSolCodigopna(persona);
                recep.setFkSolCodigocol(colegiado);
                recep.setRceFechregistro(new Date());
                recep.setRceVigente(true);
                hab=false;
            } else {
                ControladorAbstracto.error("Debe ingresar todos los datos de la Persona");
            }
        } else {
            hab=false;
            recep.setFkSolCodigopna(persona);
            recep.setFkSolCodigocol(colegiado);
            recep.setRceFechregistro(new Date());
            recep.setRceVigente(true);            
        }
        return "";
    }

    public PersonaNatural getPersona() {
        return persona;
    }

    public void setPersona(PersonaNatural persona) {
        this.persona = persona;
    }

    public boolean isCrear() {
        return crear;
    }

    public void setCrear(boolean crear) {
        this.crear = crear;
    }

    public boolean isHab() {
        return hab;
    }

    public void setHab(boolean hab) {
        this.hab = hab;
    }

    /**
     * @return the recepcionadores
     */
    public List<RecepAutoCert> getRecepcionadores() {
        return recepcionadores;
    }

    /**
     * @param recepcionadores the recepcionadores to set
     */
    public void setRecepcionadores(List<RecepAutoCert> recepcionadores) {
        this.recepcionadores = recepcionadores;
    }

    /**
     * @return the recepSeleccionado
     */
    public RecepAutoCert getRecepSeleccionado() {
        return recepSeleccionado;
    }

    /**
     * @param recepSeleccionado the recepSeleccionado to set
     */
    public void setRecepSeleccionado(RecepAutoCert recepSeleccionado) {
        this.recepSeleccionado = recepSeleccionado;
    }
}
